Automatic Creation of Master Catalog and Catalog Map for Reconciliation of Merchant Point-of-Sale Catalog and Third-Party Service Catalog

ABSTRACT

Provided are methods and systems for automatic creation of a catalog map for reconciliation of a merchant catalog, as used in a merchant point-of-sale system and a third-party reseller catalog configured to receive an order from a consumer for one or more items from the merchant. The disclosed invention provides for extraction of a merchant catalog and at least one reseller catalog for the merchant from a third-party reseller service. Subsequently, terms are compared between the extracted catalog using an automatic three-tiered approach consisting of pattern (or string) based mapping, structure based mapping into a hierarchical model, and semantic based matching. From this, a hierarchical catalog map is generated for equivalent terms between the two extracted catalog. The catalog map can then be used to create a new Master Catalog.

CROSS-REFERENCE TO RELATED APPLICATIONS

N/A

FIELD OF THE TECHNOLOGY

This application relates generally to artificial intelligence andmachine learning methodologies for automatically creating a mastercatalog and catalog map to correlate multiple listings of offeringsprovided by a business with one another.

BACKGROUND

These days there can be multiple avenues for a person to order itemsfrom a merchant without being physically present in a merchant store—theperson can call the merchant directly, place an order through themerchant's own website, or place an order through a website or mobileapplication of a third-party reseller. In the case of restaurants,third-party reseller can be such companies as GrubHub, DoorDash,Postmates, UberEats, waiter.com. Typically, the third-party resellerscreate online catalogs for the merchant without coordinating with amerchant's own point-of-sale system. Thus, a given item may berepresented completely differently in a merchant's point-of-sale systemthan in a catalog created by a third-party reseller.

Further, each third-party reseller creates their own catalog, so theremay be multiple versions of a merchant's catalog available online. Thus,there exists a need to correlate an item from a merchant catalog of eachthird-party reseller to the items listed by the merchant's own point ofsale system such that the merchant can track and charge each itemappropriately.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described in the Detailed Descriptionbelow. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Provided are methods and systems for automatically creating a catalogmap between a third-party catalog for a merchant and the merchant's owncatalog in its point-of-sale system. In one industry-specificimplementation, a merchant is a restaurant, and a merchant catalog is amenu. In some embodiments, a system for automatic creation of a catalogmap comprises a catalog extraction unit configured to extract athird-party catalog for a merchant from a third-party service; andextract a merchant catalog from a merchant point-of-sale system. Thesystem also comprises a catalog map creation unit that is configured toutilize machine learning methods to build a multi-tier hierarchicalmodel for the extracted third-party catalog; build a multi-tierhierarchical model for the extracted merchant catalog; compare at leastone term from the extracted third-party catalog with at least one termfrom the extracted merchant catalog; determine an equivalence betweentwo compared terms; and generate a catalog map in the hierarchical modelstructure with each item on the third-party catalog mapped to acorresponding item on the merchant catalog.

With the disclosed methods and systems, multiple tasks can beautomatically performed. First, the disclosed system can create acatalog map allowing a connected system to receive an incoming merchantorder based on a third-party catalog and convert it to the merchant'sPOS catalog. Second, the disclosed system can convert one or morecatalogs into a new data format that better represents meaningfulinformation. Third, the system can merge two or more catalogs into asingle catalog that is a proper set of all.

Additional objects, advantages, and novel features will be set forth inpart in the detailed description section of this disclosure, whichfollows, and in part will become apparent to those skilled in the artupon examination of this specification and the accompanying drawings ormay be learned by production or operation of the example embodiments.The objects and advantages of the concepts may be realized and attainedby means of the methodologies, instrumentalities, and combinationsparticularly pointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments are illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which likereferences indicate similar elements.

FIG. 1 depicts an exemplary catalog map.

FIG. 2 depicts an exemplary graphical user interface of a POS managerutility.

FIG. 3 depicts an exemplary catalog model.

FIG. 4 depicts an exemplary embodiment of one to one catalog mapping.

FIG. 5 depicts an exemplary embodiment of one to many catalog mapping.

FIG. 6 depicts an exemplary embodiment of many to one catalog mapping.

FIG. 7 depicts an exemplary sequence of mapping rules.

FIG. 8 depicts an exemplary process to find a best match between twoterms.

FIG. 9 depicts another exemplary process to find a best match betweentwo terms.

FIG. 10 depicts an exemplary process for comparing two terms.

FIG. 11 depicts an exemplary machine learning process to automaticallycreate a catalog map.

FIG. 12 depicts an exemplary environment for embodiments discussedherein.

FIG. 13 depicts an exemplary system for automatic creation of catalogmaps.

FIG. 14 depicts an exemplary computing system that may be used toimplement embodiments described herein.

FIG. 15 depicts an exemplary structure of a master catalog that may becreated by system from a merged catalog model.

FIG. 16 depicts an exemplary flowchart for creating a merged catalogmodel.

FIG. 17 depicts an exemplary methodology for automatically creating acatalog map.

FIG. 18 depicts an exemplary graphical user interface of a tool to applymodifiers to master catalog item properties.

DETAILED DESCRIPTION

The following detailed description includes references to theaccompanying drawings, which form a part of the detailed description.The drawings show illustrations in accordance with exemplaryembodiments. These exemplary embodiments, which are also referred toherein as “examples,” are described in enough detail to enable thoseskilled in the art to practice the present subject matter. Theembodiments can be combined, and other embodiments can be formed, byintroducing structural and logical changes without departing from thescope of what is claimed. The following detailed description is,therefore, not to be taken in a limiting sense and the scope is definedby the appended claims and their equivalents.

In this document, the terms “a” and “an” are used, as is common inpatent documents, to include one or more than one. In this document, theterm “or” is used to refer to a nonexclusive “or,” such that “A or B”includes “A but not B,” “B but not A,” and “A and B,” unless otherwiseindicated.

The embodiments disclosed herein may be implemented using a variety oftechnologies. For example, the methods described herein may beimplemented in software executing on a special purpose computer systemcontaining one or more computers, or in hardware utilizing either acombination of microprocessors or other specially designedapplication-specific integrated circuits (ASICs), programmable logicdevices, or various combinations thereof. In particular, the methodsdescribed herein may be implemented by a series of computer-executableinstructions residing on a storage medium, such as a disk drive, orcomputer-readable medium.

Disclosed herein are artificial intelligence and machine learningmethodologies for translating multiple versions of a listing ofofferings provided by a business with one another. More specifically, athree-tiered approach is disclosed, consisting of pattern (or string)based mapping of text, structure based mapping utilizing data organizedinto a hierarchical model, and semantic based matching (parts of speech,synonyms, etc.). In one exemplary embodiment discussed throughout thisdisclosure, a catalog map adapted for the restaurant industry in theform of a menu map is automatically created to correlate items on a menuprovided by a restaurant merchant with items on a different version ofthe restaurant's menu (catalog) that is provided by a third-partyservice, also sometimes referred to herein as a third-party reseller oran online ordering company.

Every merchant's catalog has the possibility to be unique from everyother merchant's catalog, so Point-of-sale (POS) System companies alloweach merchant to configure their own catalog in their system. This isusually done by a technical person who understands the complexities ofthe POS System. Online ordering companies also allow each merchant toconfigure their own catalogs in the system. But this is usually done bya marketing person who is trying to make their catalog stand out amongstthe competition.

The result is that a food item defined as a “burger” in the POS Systemmight be described as a “Deluxe Burger” on one online ordering site, asa “Super Hamburger” on another, and as simply a “Hamburger” on a third.When attempting to integrate the online ordering services with themerchant POS System, the catalogs from each side must first be convertedto a uniform format, and then the specific item names provided by theonline ordering company must be “mapped” to the POS System names, so themerchant can prepare and charge the items correctly in each customer'sorder.

Further, many merchants traditionally utilized cash registers to ring upspecific catalog items for each customer's order. Gradually, merchantsshifted to utilizing a Point-of-sale (POS) system to ring up catalogitems for each customer's order. These POS systems are typicallyspecialized hardware systems with specialized software operating onthem. In embodiments of the present disclosure, a POS system cancommunicate with a cloud server and database for the POS company throughan Application Programming Interface (API) to allow the merchant to usedynamic catalogs without having to re-program the specialized hardwareof the POS system. Further, the POS system can communicate via an APIwith a cloud server and database for a separate cataloging and orderprocessing system that provides catalog extraction, catalog translation,catalog merging, and catalog mapping to reconcile the POS catalog with athird-party service catalog. The separate cataloging system may generateand retain a plurality of catalog maps per merchant. Further, thecataloging system can be connected to multiple POS systems, such as formultiple locations of a same merchant.

Embodiments of the present disclosure provide for mechanisms toautomatically create a catalog map to map a catalog item from athird-party reseller to a catalog item in a merchant's POS system.

FIG. 1 depicts an exemplary catalog map for the exemplary use case of arestaurant merchant. For this exemplary use case, the catalog map may bereferred to as a menu map herein. In the figure, catalog map 100 iscreated by the disclosed system to correlate specific catalog items froma third-party online ordering company's catalog (depicted as onlinecatalog 110) to a catalog in a merchant POS system (depicted as POSCatalog 120). As discussed herein, a catalog map is a data structurethat relates each item in each online catalog 110 with the correspondingitem in the POS catalog 120. A unique instance of this catalog map mustbe created for each combination of Online Catalog and Merchant POSCatalog. In 2019 there were approximately 180 online ordering companiesacross the country (according to Forbes.com), and more than 1 millionrestaurants in the US (according to smallbizgenius.net). Thus, thecreation of a catalog map to map each individual catalog item for eachonline ordering company to each individual restaurant merchant canbecome quite cumbersome for a person to do manually.

FIG. 12 depicts an exemplary environment 1200 in which the disclosedtechnology resides. The environment 1200 may include a data network 1250(e.g., an Internet or a computing cloud), end user(s) 1205, clientdevice(s) 1210 associated with the end user(s) 1205, a point-of-salesystem 1230, a system 1220 for automatic creation of catalog maps, andthird-party ordering system 1260. Client device(s) 1210 may include apersonal computer (PC), a desktop computer, a laptop, a smartphone,smartwatch, a tablet, or any network enabled device.

The data network 1250 may include the Internet or any other networkcapable of communicating data between devices and/or servers. Suitablenetworks may include or interface with any one or more of, for instance,a local intranet, a corporate data network, a data center network, ahome data network, a Personal Area Network, a Local Area Network (LAN),a Wide Area Network (WAN), a Metropolitan Area Network, a virtualprivate network, a storage area network, a frame relay connection, anAdvanced Intelligent Network connection, a synchronous optical networkconnection, a digital T1, T3, E1 or E3 line, Digital Data Serviceconnection, Digital Subscriber Line connection, an Ethernet connection,an Integrated Services Digital Network line, a cable modem, anAsynchronous Transfer Mode connection, or a Fiber Distributed DataInterface or Copper Distributed Data Interface connection.

The system for creating catalog maps 1220 may comprise one or morecomputing servers configured to execute instructions stored in a memoryto run one or more computing algorithms and other computing processes toautomatically create catalog maps as discussed herein, from a catalogreceived from the POS system 1230 and a third-party catalog 1271received over the data network 1250. The system 1220 is in communicationwith one or more data structure(s) either stored locally or accessibleremotely. In one embodiment, a data structure may be a database.

Cataloging and order processing system 1290 may comprise one or morecomputing servers configured to execute instructions stored in memory torun one or more computing algorithms and other computing processes toperform the functions described herein and communicate via data network1250.

When a new merchant signs on as a client of cataloging and orderprocessing system 1290, a Merchant Onboarding Technician 1201 performsseveral tasks to configure a Cataloging and Order Processing System 1290so that the merchant is recognized as a client. One of those tasks is tocreate Catalog maps 1280 for each third-party ordering system themerchant partners with. In exemplary embodiments, the MerchantOnboarding Technician 1201 may be a human or a computer.

Utilizing the process illustrated in FIG. 2 through FIG. 6, anddescribed herein, one or more Merchant Onboarding Technicians 1201utilize a POS Manager application 1202 to perform this task. Followingthe steps described above, the technician 1201 will first acquire a POSCatalog 1270 by directing the Cataloging and Order Processing System1290 call the API Call for Catalog 1240 connected to the Merchant POSSystem 1230. The Cataloging and Order Processing System 1290 willautomatically save a copy of the retrieved POS Catalog 1270 in theStorage Unit 1291 for future use. Storage Unit 1291 may be a database,or any other data structure.

Second, the technician 1201 acquires a third-party Catalog 1271 bydirecting the Cataloging and Order Processing System 1290 call the APICall for Catalog 1241 connected to the Third-Party Ordering System 1260.The Cataloging and Order Processing System 1290 will automatically savea copy of the Third-Party Catalog 1271 in the Storage Unit 1291 forfuture use. As used herein, the API call for catalog 1240 and the APIcall for catalog 1241 may be conducted by a “catalog extraction unit” ofthe system 1290.

Third, the technician 1201 acquires a Catalog map 1280 by directing theCataloging and Order Processing System 1290 call the API Call forCatalog map 1242 sending the POS Catalog 1270 and Third-Party Catalog1271 to the System for Creating Catalog maps 1220 and getting a Catalogmap 1280 in return. The Cataloging and Order Processing System 1290 willautomatically save a copy of the Catalog map 1280 in the Storage Unit1291 for future use.

Optionally, a human technician 1201 may make any required changes to theCatalog map 1280 manually. Finally, technician 1201 directs theCataloging and Order Processing System 1290 to save the updated Catalogmap 1280 in the Storage Unit 1291 for future use.

Upon completing this and any other tasks required to “On Board” themerchant, the Cataloging and Order Processing System 1290 is now readyto accept orders on behalf of the merchant. An End User 1205 is now ableto utilize a variety of input devices 1210 to place an order with aThird-Party Ordering System 1260. Through the API Call for Order 1243,Cataloging and Order Processing System 1290 is notified that aThird-Party Order 1273 is available, and it calls to get it.

Upon receiving a new Third-Party Order 1273, Cataloging and OrderProcessing System 1290 collects the POS Catalog 1270, the Third-PartyCatalog 1271, and the Catalog map 1280 associated with the order fromthe Storage Unit 1291 and converts the Third-Party Order 1273 into a POSOrder 1272. Copies of the Third-Party Order 1273 and the POS Order 1272are saved in the Storage Unit 1291 for future use. And finally, the POSOrder 1272 is sent to the POS System 1230 by way of the API Call forOrder 1243.

In exemplary embodiments, cataloging and order processing system 1290may determine that a prior mapping for the particular third-partycatalog is not found in storage unit 1291 and automatically run themachine learning algorithms discussed herein to create a catalog map forthe particular third-party catalog. In other embodiments, system 1290may determine that a different third-party catalog is substantiallysimilar to the third-party catalog of the instant order, and utilize itscatalog mapping structure to generate a catalog map to be utilized forthe instant order.

In some embodiments, the POS Manager 1202 may also direct the Catalogingand Order Processing System 1290 to request that the System for CreatingCatalog maps 1220 convert a catalog into a different format, or mergetwo catalog into one catalog.

FIG. 2 illustrates an exemplary graphical user interface 200 of a POSManager Utility to assist with managing Catalog maps, such as catalogmap 100 of FIG. 1. The figure is for the specific implementation of arestaurant merchant. Selecting a restaurant from the list of availablerestaurants 210 causes the utility to fetch the restaurant menu from thePOS System, and display it on the right-hand side of the screen asRestaurant POS menu 220. As would be understood by persons of ordinaryskill in the art, the Restaurant POS menu 220 may be displayed on otherportions of the screen instead of on the right side, such as on the leftside, in a top panel, in a bottom panel, etc.

Selection of a restaurant also causes the utility to populate a list ofResellers (also sometimes referred to herein as online orderingcompanies) that are associated with the chosen restaurant. Afterselecting a reseller from reseller list 230, the restaurant's menu isfetched from the reseller website and displayed on the left-hand side asReseller Menu 240. If a Menu Map already exists in the system database(such as storage unit 1291 of FIG. 12), it is fetched and displayed inthe center column. If none exists yet, an empty map is created anddisplayed.

In one embodiment of the disclosed utility, a human operator (which mayor may not be the technician 1201 from FIG. 12) has the ability toscroll through the reseller menu 240 and the restaurant POS menu 220 tofind appropriate matches. When a match is identified, the operator candrag the item from the restaurant POS Menu 220 on the right to the MenuMap in the center, and the appropriate data entry will be made. When allthe entries are mapped, the operator can press the Save Menu Map buttonand save the Menu Map in the database.

In a second embodiment of the disclosed utility, a search function isalso provided. The search function is designated by a magnifying glassicon and uses Cosine similarity, Jaro-Winkler distance, and/or LongestCommon Subsequence (LCS) algorithms to perform string matchingoperations between the item names on the reseller menu 240 on the leftand the restaurant POS menu 220 on the right to choose candidate matchesdisplayed for selection by the operator. As would be understood bypersons of ordinary skill in the art, other algorithms may be used invarious embodiments instead of, or in addition to, these listedalgorithms.

In a third embodiment of the disclosed utility, the search feature isexpanded. Instead of comparing item names one pair at a time, the entiremenu is compared one pair of items at a time. This allows the utility toachieve around 80% successful and complete mapping in just a fewseconds. The (human) operator reverts to the previous manual process tocomplete the map.

In a fourth embodiment of the disclosed utility, a catalog model isformalized and standardized. An exemplary catalog model 300 is depictedin FIG. 3. By expressing all the POS Catalogs and Online Catalogs inthis consistent format, we enable the ability to employ ArtificialIntelligence and Machine Learning technologies to the problem ofcreating Catalog maps fully automatically. By training an inferenceengine with a library of catalogs, the disclosed system for creatingcatalog maps (such as system 1220 of FIG. 12) can ingest a new onlinecatalog, compare it to the associated POS catalog, and create a catalogmap automatically with near 100% accuracy and completeness.

In exemplary embodiments of the present disclosure, when a catalog isextracted from a POS system, a very explicit data structure is generatedthat can be algorithmically decomposed into a four level hierarchicalcatalog model 300 depicted in exemplary FIG. 3. Similarly, when acatalog is received from an online ordering company, a data structure isgenerated that can be algorithmically decomposed into the four levelhierarchical catalog model 300 depicted in exemplary FIG. 3.

As depicted in exemplary FIG. 3, each catalog 310 has a list ofcategories 320. Exemplary categories for a menu catalog may beappetizers, entrees, salads, desserts, drinks, etc. Within each category320, there are specific catalog items 330. For example, under an entreecategory, there may be items such as egg sandwich at breakfast time,hamburger at lunchtime, and filet at dinnertime.

Further, a catalog item 330 can have option groups 340 and options(sometimes referred to herein as option values) 350. As discussedherein, an option group can be a grouping of available ingredients, andan option value a specific ingredient. For example, a catalog item ofpizza may have an option group 340 of toppings, and specific optionvalues 350 within that option group 340 that list of specific toppingsthat are available for the pizza. Further, an option group may bespecialty pizza with predetermined combinations of toppings as optionvalues 350.

While not expressly depicted in exemplary FIG. 3, a catalog item 330 mayalso have a modifier. The modifier is mainly relevant for affecting theprice of the item. Modifiers may be associated with catalog items 330,option groups 340, and/or option values 350.

For example, a menu catalog item of pizza may have a modifier for pizzasize—small, medium, large, x-large. Further, a menu item of pizza mayhave a special type of modifier called “Sections” that allows foroptions (such as toppings) to be applied to either the “left” or “right”section, and to be priced for either a “half” or “whole” order. Whenconverting or merging catalogs, it is important to distinguish betweenoptions and modifiers. When a catalog does not incorporate thisdistinction, the ability to map options to modifiers is particularlyimportant. FIG. 15 depicts this in more detail. Further, FIG. 18illustrates an exemplary graphical user interface for modifying a priceof a topping “pepperoni” based on the size of the pizza and theselection of either a section or the whole pizza. As shown in thefigure, the price of the pepperoni option is different based on themodifier of half/whole section for the pizza, and also varies based onthe modifier for pizza size.

In exemplary embodiments of the present disclosure, a hierarchicalcatalog model generated from a POS catalog may be merged with ahierarchical catalog model generated from a merchant catalog to create amerged catalog model 1630, as depicted in the exemplary flowchart ofFIG. 16 for a restaurant industry specific implementation. This processmay occur by system 1220 of FIG. 12.

As shown in exemplary FIG. 16, a reseller menu 1610 is retrieved andnormalized into the hierarchical data structure referenced above tocreate a menu model (such as catalog model 300 of FIG. 3) for thereseller menu 1610. Similarly, a POS menu 1620 is retrieved andnormalized into the hierarchical data structure referenced above tocreate a menu model for the POS menu. The two menus are then merged tocreate a merged menu model 1630 that is representative of both resellermenu 1610 and POS menu 1620. The merged menu model may be utilized bythe system for creating catalog maps 1220 to create a master catalog.

FIG. 15 depicts an exemplary structure of a master catalog 1510 that maybe created by system 1220 from a merged catalog model, such as mergedmenu model 1630 of FIG. 6. The master catalog 1510 may have a category,item, option group, and option value, as the hierarchical catalog model.The master catalog 1510 may also have a modifier group and a modifiervalue. The modifier group and modifier value may each relate to any of acatalog item, option group, or option value. Further, master catalog1510 may have one or more sections and section values relating to acategory, item, or option value of the master catalog.

FIG. 17 depicts an exemplary methodology for automatically creating acatalog map for a restaurant industry specific implementation. As shownin the exemplary figure, a reseller menu 1610 is retrieved andnormalized into the hierarchical data structure referenced herein tocreate a menu model (in the form of catalog model 300 of FIG. 3) for thereseller menu 1610. Similarly, a POS menu 1620 is retrieved andnormalized into the hierarchical data structure referenced above tocreate a menu model for the POS menu 1620. Each menu model is thenutilized to automatically create a menu map with two columns. Mappingmethodologies discussed herein are then used to determine mappings ofspecific items from each menu.

To create a catalog map, there are four different types of mappingmethodologies that may be used to map an online order to a POS order.Any one or more mapping methodology may be utilized in exemplaryembodiments. Each of these mapping types will be discussed in moredetail herein.

FIG. 4 depicts an exemplary embodiment of one to one mapping forrestaurant menus, starting from an auto-map that may be created usingthe methodology of FIG. 17. In other embodiments, a many to many mappingmay be performed in a similar manner. As shown in exemplary FIG. 4, thecatalog model hierarchical structure is provided in column 410 on theleft side, the online ordering company menu is provided in a centercolumn 420 and a POS menu is provided in a right column 430. As would beunderstood by persons of ordinary skill in the art, each of these columnmay be presented in a different order then is shown in the exemplaryfigure, or presented in a format other than columnar.

In one to one mapping, menu terms that are on a given row are mapped toeach other. So, a category of salads in column 420 for the online menuis mapped to a category of salad in column 430 for the POS system. Inthe subsequent row, a specific item of ‘Greek Salad’ in column 420 ismapped to the word ‘Greek’ on the POS side. This system continues downthe rows such that for everything in column 420, there is a match tosomething in column 430, even though the specific text may not beidentical. Using artificial intelligence and machine learningtechniques, the term “salads” can be equated with the term “salad”.Further, the term “Greek salad” can be determined to map to the term“Greek” since Greek is a category of salad.

Exemplary FIG. 4 also depicts that “Add Chicken” in column 420 is mappedto ‘Meat’ in column 430 as an option group. This is determined becausethe terms share a parent (Item for Green Salad) and/or grandparent(Category of Salads) in the hierarchical model. Thus, the mapping of addchicken to meat is determined to be strong. Further, the children optionvalues of chicken and grilled chicken have a strong correlation. Thus,an inference can be made that ‘add chicken’ option group is to be mappedto ‘meat’ option group. That is, given that the ancestors and childrenin the hierarchy are strong matches, the system can infer that thesiblings are also a match. As part of the artificial intelligenceapplied, these mapping rules can be defined and delineated to determineways of deciding when a given rule applies to a specific situation.

Exemplary FIG. 4 also depicts that ‘vinaigrette balsamic dressing’ incolumn 420 is mapped to ‘balsamic vinegarette’ in column 430 as anoption group. The name of the dressing is spelled wrong in the POSsystem menu in column 430. In fact, it is spelled with ‘vinegar’ in thename, and ‘vinegar’ is another option value available in POS menudepicted in column 430. Thus, when the system is mapping balsamicvinaigrette dressing on the left hand side, it can determine that theright hand side has both ‘vinegarette’ and ‘vinegar’, both of which aresimilar. Thus, it can rely mainly on the ‘balsamic’ part of the phrasein column 420, and a relatively close match between vinaigrette spelledcorrectly and vinegarette spelled incorrectly in order to decide that isa stronger map than to “vinegar” which is on the row below.

In this way, strings of characters are compared between the online menuin column 420 and POS menu in column 430. ID numbers assigned toindividual categories, items, option groups, and option values in thePOS system have no correlation whatsoever by themselves to ID numbersassigned to these entities in the online menu. Thus, the mapping of thetwo menus is originally accomplished by comparison of the characterstrings that exist on each side. Once the menu map is created for thesetwo menus in the format of the catalog model 300, then the ID numbersfrom the online menu in column 420 can be correlated to the ID numbersin the POS menu in column 430. This correlation or mapping of ID numberscan then be stored in a database or other data structure (such asstorage unit 1291 of FIG. 12). In some embodiments, storage unit 1291may be remotely accessible by the POS system.

Once a catalog map is created initially for a pair of catalogs, thenthat map can be utilized in all future instances to fulfill customerorders. That is, a person may place an order with a third-party orderingservice for fulfillment of a ‘green salad’ with ‘vinegar dressing’. Theorder is received by the cataloging and order processing system 1290,acting as an intermediary between the third-party ordering service andthe merchant. The cataloging and order processing system 1290 can thenutilize a previously generated catalog map to determine an ID number foreach of the items in the order, determine a corresponding ID number foreach of these items in the merchant POS system, convert the order to aPOS order, allowing the merchant to prepare and charge the customerappropriately, thereby fulfilling the customer order with 100% accuracy.

FIG. 5 depicts an exemplary embodiment of one-to-many mapping. In theexemplary figure, the catalog model hierarchical structure is providedin column 510 on the left side, the online ordering company menu isprovided in a center column 520, and a POS menu is provided in a rightcolumn 530. As would be understood by persons of ordinary skill in theart, each of these column may be presented in a different order then isshown in the exemplary figure, or presented in a format other thancolumnar.

In one to many mapping, menu terms that are on a given row in one menu(such as the online menu in column 520) are mapped to menu terms thatappear on multiple rows in the other menu (such as the POS menu incolumn 530). As depicted in exemplary FIG. 5, the menu item of ‘12″Design Your Own Pizza’ from column 520 depicting online menu is mappedto the menu item ‘Create Your Own Pizza’, the option group ‘Sizes’, andalso the option value ‘Small 12″’ from the POS system menu shown incolumn 530.

Thus, in the online menu, the size of the pizza is in the definition ofthe menu item itself. In the online menu, a 12 inch pizza is a differentmenu item than a 14 inch pizza, which is a different item than an 18inch pizza. As such, each of these menu items has a different ID number.However, in the POS system menu, all of these correlate to a singularmenu item of ‘Create Your Own Pizza’ and the differences lie in theoption values. Thus, the three menu items having three separate IDnumbers in the online menu correlate to one menu item ID number in thePOS system.

To create the mapping, the system first determines that “design your ownpizza” means the same thing as “pizza” at the category level. Then, atthe item level, the system determines that very same string “design yourown pizza” maps to “create your own pizza”. Further, the systemdetermines that the “12 inches” that is left over in the name of theitem in column 520 has to get carried down to the children of sizes andsmall 12 inch in column 530.

In this exemplary embodiment, the system for creating catalog maps 1220would recognize that it is not a perfect match, but a strong match to“your own pizza”. The system would then look at the strength of thatstrong match and compare to the pieces that are not the same—‘design’ onthe left side and ‘create’ on the right side. The system would furtherlook to see if there are any better matches between the left hand sideand the right hand side. If none better, then the system determines thatthe two strings are to be mapped to one another.

FIG. 6 depicts an exemplary embodiment of many to one mapping. In theexemplary figure, the catalog model hierarchical structure is providedin column 610 on the left side, the online ordering company menu isprovided in a center column 620, and a POS menu is provided in a rightcolumn 630. As would be understood by persons of ordinary skill in theart, each of these columns may be presented in a different order then isshown in the exemplary figure, or presented in a format other thancolumnar.

In many to one mapping, menu terms that appear on multiple rows in onemenu (such as online menu) depicted in column 620 are mapped to a singlemenu term in a second menu (such as POS menu) depicted in column 630.

As depicted in exemplary FIG. 6, the online ordering menu is structuredsuch that canned soda is an item with an option group of soda and anoption value of ‘coke’. In contrast, the POS menu in column 630 simplydepicts an item of ‘coke’. In correlating the online menu to the POSmenu, multiple ID numbers are mapped to one ID number. Thus, when areorder comes in from the online ordering company, that order will referto ‘canned sodas’ by ID, soda choice by an ID, and coke by an ID. Whenthe POS system at the restaurant receives all three of those IDs, thenand only then can it find a match in the menu map that points to ‘coke’as the corresponding menu item on the POS side. Since there are 4 levelsin the hierarchical catalog model 300, there may be anywhere from 1-4IDs from the online ordering company that match to a single ID on thePOS side. However, other embodiments may have fewer or additional levelsin a hierarchical catalog model, thus leading to a different number ofIDs from an online ordering company to match to a single ID on the POSside.

In accomplishing the creation of the catalog map in the format of thehierarchical catalog model as discussed herein, the system implements aseries of mapping rules in sequence. FIG. 7 depicts an exemplarysequence of mapping rules that may be employed. First the systemimplements preparatory rules in step 705, which are fairly simplealgorithms that are applied as a first pass to prepare for upcoming,more complicated mappings. As part of the preparatory rules, the systemmay first convert all text in both catalogs to be compared to lowercasescript. Further, the system may convert one or more words that are inplural form to the singular versions.

The system further determines the different parts of speech that arepresent for semantic based matching, since words are linked differentlydepending on the part of speech. For example, proper nouns have highestpriority for matching, then improper nouns are second priority formatching, and then verbs are matched.

Once the preparatory rules have been applied, then sibling rules may beapplied in step 710 for pattern (or string) based mapping. In exemplaryembodiments, an exact match from a sibling on the left side to a siblingon the right side is the most desirable outcome. If that does not exist,then an exact match between a sibling on the left side to one or moresubstrings from a sibling on the right is sought. As discussed herein, a‘string’ or ‘substring’ refers to characters, and not words.

A third sibling rule specifies that one or more sibling substrings onthe left are an exact match to a single substring on the right side. Afourth sibling rule specifies that a substring on the left exactlymatches a substring on the right. That is, there may exist the samewords on the left and right side, but in a different order and with nocharacters left over (all characters matched).

These sibling rules, and any others not specifically mentioned here, maybe applied in any order. Further, the system may implement a subset ofthe sibling rules, instead of all of them, in varying order.

Parent-child rules are also implemented by the system to ascertain acatalog map, in step 715. In various embodiments, the parent-child rulesencompass any one or more of the four sibling rules discussed above, inaddition to any other rules. The parent-child rules relate to matches ofstrings or substrings up and down the tree of the hierarchical catalogmodel, for structure based mapping. Since the catalog model containsfour levels in exemplary embodiments discussed herein, the matches forthe parent-child rules may be found within three levels up or down froma catalog on the other side.

Child-parent mapping rules are also implemented by the system toascertain a catalog map, in step 720. In various embodiments, thechild-parent rules encompass any one or more of the sibling rulesdiscussed above, in addition to any other rules. The child-parent rulesrelate to matches of strings or substrings up and down the tree of thehierarchical catalog model. Since the catalog model contains four levelsin exemplary embodiments discussed herein, the matches for thechild-parent rules may be found within three levels up or down from acatalog on the other side.

Modifier rules may also be implemented by the system to ascertain acatalog map, in step 725. The modifier rules are applicable to modifiersidentified in a catalog, and not entities of the hierarchical catalogmodel. For example, a modifier might be a size of an item (such as afountain drink, pizza, etc.). Further, for the special case of pizza,the right and left side of the pizza may have different toppings. Thedesignation of the different toppings for the different sides of thepizza are a special instance of modifier rules called Sections, and notrules relating to items or options.

With the mapping rules discussed herein, the system compares terms fromone catalog (depicted in the exemplary figures as being in a left sidecolumn) with terms from a second catalog (depicted in the exemplaryfigures as being in a right side column). The catalog terms may be for acategory, item, option group, option value, or modifier. All possiblecombinations are compared, and a weighted score is determined. For anytwo terms compared, the top weighted score is selected and utilized forthe catalog map.

FIG. 8 illustrates an exemplary process utilized by the system disclosedherein to find a best match between a term on one catalog with a term ona second catalog. As depicted in the figure, a determination is made ifthe POS term and term to match are both positive or both negative. Thisis important because it is imperative that a string of ‘add onions’ isnot equated or matched with a string of ‘no onions’, regardless of amatching score. The string ‘add onions’ is an example of a positiveterm, and the string ‘no onions’ is an example of a negative term. Thus,the system compares terms that are either both positive or bothnegative, regardless of how close they might be based on any scoring. Ifa catalog item does not have either a positive or negative stringattached to it, then this step is not applicable.

For each category, item, option group, and option value, the two termsare compared. In exemplary embodiments, one or more of the mapping rulesare utilized. As used in FIG. 8, the compared “terms” may be a category,item, option, or option value, but may also include descriptions,prices, and any other metadata associated with a catalog. For example,metadata may include associated photos that by image classificationalgorithms introduce additional information into the matching process.

The comparison of catalog terms is particularly important becausesometimes a term may be used in different categories. In one example,the word ‘Italian’ may be used as an option in an option group calleddipping sauce when accompanied with a catalog item such as a pretzelroll or breadstick. The same word ‘Italian’ may also be used as anoption in an option group for salad dressing. The ‘Italian’ sauce may infact be the same ingredients in both categories. However, the POS systemmay differentiate the two because there is a different price for Italianas a salad dressing as opposed to Italian as a smaller quantity whenit's a dipping sauce. Thus, the system can allow the ‘Italian’ textstring to be differentiated where it needs to be differentiated, butpossibly matched where it needs to match.

From the comparisons of terms, a score is calculated for the match,utilizing weighting coefficients for select terms or types of terms. Thecalculated score is then added to a list of scores, which is sorted. Inexemplary embodiments, the weighted score is a numerical value between 0and 1, with 1 denoting an exact match and 0 denoting no match. The POSitem with the highest score is determined to be the match to the itemfrom the online catalog, and is added to the catalog map for thiscombination of two catalogs. In this way, each item in an online catalogis mapped to POS system items.

FIG. 9 illustrates an exemplary process utilized by the system disclosedherein to continue to find a best match between a term on one catalogwith a term on a second catalog. As depicted in the figure, adetermination is made if the POS term and term to match are bothpositive or both negative, as in FIG. 8. For each category, item, optiongroup, and option value, the two terms are compared. In exemplaryembodiments, one or more of the mapping rules are utilized and one ormore algorithms are implemented for the mapping rules, such as cosinesimilarity, longest common subsequence, and Jaro-Winkler distance.

From the comparisons of terms, a score is calculated for the match,utilizing weighting coefficients for select terms or types of terms. Thecalculated score is then added to a list of scores, which is sorted. Inexemplary embodiments, the weighted score is a numerical value between 0and 1, with 1 denoting an exact match and 0 denoting no match. The POSitem with the highest score is determined to be the match to the itemfrom the online catalog, and is added to the catalog map for thiscombination of two catalogs. In this way, each item in an online catalogis mapped to POS system items.

An exemplary process of comparing terms is shown in FIG. 10. The systemfirst converts all terms to lower case and makes plural terms singular.Then terms are broken into a parts of speech list to identify all of thegrammatical parts of speech that are present. Synonyms are also addedinto the parts of speech list. An item may be listed as ‘hamburger’ inone catalog, ‘burger’ in another, ‘Delux Burger’ at one merchant, and‘The Big Kahuna’ at another. Synonyms are utilized by the system tobring in all these matchings that are not going to happen without priorknowledge that these catalog terms mean the same thing.

Each individual part of speech in a first term is compared to the samepart of speech type in a second term. For example, the system comparesall of the nouns in the first term to all of the nouns in the secondterm, all of the adjectives in the first term to all of the adjectivesin the second term, proper nouns, and so on for all of the parts ofspeech present. In this way, a comparison is made of like to like. Acosine similarity algorithm may be utilized to implement this analysis,since it is a measure of the number of identical characters regardlessof order. A longest common subsequence algorithm measures identicalcharacters in sequence, but not necessarily the same order.

Jaro-Winkler distance algorithms measure identical characters within alimited distance of each other, weighted to the beginning of the stringbeing more important than the end of the string. Additional screeningalgorithms may also be implemented in addition to, or instead of, thesealgorithms specifically depicted in the exemplary figure.

The specific mapping rules dictate the pattern, structure, and semanticmatching algorithms that are most appropriate for implementing thatrule, so a different algorithm can be used for each mapping rule. Adetermination is made by the system as to which algorithm is appropriatefor the mapping rule that we are applying to the strings that arecurrently being analyzed. For example, Smith Waterman algorithm does avery good job of identifying identical strings. Combining that withChapman algorithms tells you whether there are any characters left overthat are not a part of the exact match. Thus, that combination ofalgorithms is better than simply using cosine similarity, LCS, orJaro-Winkler for identifying identical character strings and determiningif any unmatched characters remain in the string.

Although not explicitly illustrated in FIG. 10, the semantic-basedmapping module relies on the Natural Language Processing technique ofword embedding that uses a neural network model to learn wordassociations from a very large corpus of text. In one embodiment, theWikipedia English language database is utilized. The neural networkmodel is used to convert words or phrases into vectors of real numbersbased on the corpus, and those vector representations of words orphrases are then used to compute their score of semantic similaritiesusing the cosine similarity algorithm.

The results of the various algorithms applied may then be normalized anda normalized result is returned. In exemplary embodiments, thenormalized result is a score that is a numerical value between 0 and 1,with 1 denoting an exact match and 0 denoting no match.

FIG. 11 depicts an exemplary machine learning process utilized by thesystem to automatically create a catalog map between two differentcatalogs for a same merchant. A catalog map cannot be utilized by amerchant to fulfill customer orders until it is 100% accurate. Thus, insome instances, a human administrator reviews a catalog mapautomatically created by the system 1220 and modifies matchings asnecessary until the map is 100% accurate. Once a catalog map is createdbetween a POS catalog and a third-party online catalog and determined tobe 100% accurate, that map can then be used to train a machine learningalgorithm to automatically create additional catalog maps between thePOS catalog and other third-party online catalogs with increasedaccuracy.

One part of training the machine learning algorithm for automaticallycreating a catalog map is the determination of the weightingcoefficients that are used. Exemplary FIG. 11 depicts that weightingcoefficients are initially set to an initial value. Each time anapproved catalog map is checked into a database of the system, thismachine learning algorithm is run. This means that until a better set ofcoefficients is determined, the system will go through all of theapproved catalog maps and calculate a new catalog map using the currentset of coefficients. Any new catalog maps generated are compared with apreviously approved catalog map. From this comparison, the systemupdates any synonyms that may be extracted from that process, recordsall of the differences and then uses those differences as a mechanismfor updating the current coefficients. The process continues until abetter result is achieved for a catalog map. When the better result isachieved, that catalog map is saved for use in a creation of asubsequent catalog map.

In this way, the machine learning algorithm for automatically creatingcatalog maps is essentially retrained with every approved catalog mapever built, through this iterative process. Further, a catalog may bedynamic, with seasonal offerings, limited time offerings of new items,or items going out of stock. Thus, the system may have to re-evaluate amerchant catalog on a periodic basis using some or all of the historicalapproved catalog maps previously generated for that merchant. Inexemplary embodiments, the periodic basis may be once a day, once aweek, once a month, once a quarter, once a year, or upon direction by ahuman administrator.

FIG. 13 is a block diagram illustrating select components of system1220, as discussed with reference to FIG. 12. The system 1220 maycomprise a (temporary) catalog storage unit 1310 to store a catalog froma merchant point-of-sale system, and/or from one or more third-partyservices, provided by system 1290. The system 1220 may also comprise acatalog map generation unit 1320, which is configured to utilize machinelearning techniques to analyze the provided catalogs and generate acatalog mapping between the provided catalogs.

In exemplary embodiments, the catalog map generation unit 1320 mayretrieve from catalog storage unit 1310 a multi-tier hierarchical modelfor the extracted third-party catalog, retrieve from catalog storageunit 1310 a multi-tier hierarchical model for the extracted merchantcatalog, compare at least one term from the extracted third-partycatalog with at least one term from the extracted merchant catalog,determine an equivalence between two compared terms, generate a catalogmap in the hierarchical model structure with each item on thethird-party catalog mapped to a corresponding item on the merchantcatalog, and save the catalog map in data structure 1280. Further, thecatalog map generation unit 1320 is configured to generate a mastercatalog in the hierarchical model structure with each item on a thirdparty catalog merged with a corresponding item on the merchant catalog.

FIG. 14 illustrates an exemplary computing system 1400 that may be usedto implement embodiments described herein, such as system 1220, system1290, and POS system 1230. The exemplary computing system 1400 of FIG.14 may include one or more processors 1410 and memory 1420. Memory 1420may store, in part, instructions and data for execution by the one ormore processors 1410. Memory 1420 can store the executable code when theexemplary computing 1400 is in operation. The exemplary computing system1400 of FIG. 14 may further include a mass storage 1430, portablestorage 1440, one or more output devices 1450, one or more input devices1460, a network interface 1470, and one or more peripheral devices 1480.

The components shown in FIG. 14 are depicted as being connected via asingle bus 1490. The components may be connected through one or moredata transport means. The one or more processors 1410 and memory 1420may be connected via a local microprocessor bus, and the mass storage1430, one or more peripheral devices 1480, portable storage 1440, andnetwork interface 1470 may be connected via one or more input/outputbuses.

Mass storage 1430, which may be implemented with a magnetic disk drive,an optical disk drive, and/or solid state disks (SSD) is a non-volatilestorage device for storing data and instructions for use by a magneticdisk or an optical disk drive, which in turn may be used by one or moreprocessors 1410. Mass storage 1430 can store the system software forimplementing embodiments described herein for purposes of loading thatsoftware into memory 1420.

Portable storage 1440 may operate in conjunction with a portablenon-volatile storage medium, such as a compact disk (CD) or digitalvideo disc (DVD), to input and output data and code to and from thecomputing system 1400 of FIG. 14. The system software for implementingembodiments described herein may be stored on such a portable medium andinput to the computing system 1400 via the portable storage 1440.

One or more input devices 1460 provide a portion of a user interface.The one or more input devices 1460 may include an alphanumeric keypad,such as a keyboard, for inputting alphanumeric and other information, ora pointing device, such as a mouse, a trackball, a stylus, or cursordirection keys. Additionally, the computing system 1400 as shown in FIG.14 includes one or more output devices 1450. Suitable one or more outputdevices 1450 include speakers, printers, network interfaces, andmonitors.

Network interface 1470 can be utilized to communicate with externaldevices, external computing devices, servers, and networked systems viaone or more communications networks such as one or more wired, wireless,or optical networks including, for example, the Internet, intranet, LAN,WAN, cellular phone networks (e.g., Global System for Mobilecommunications network, packet switching communications network, circuitswitching communications network), Bluetooth radio, and an IEEE802.11-based radio frequency network, among others. Network interface570 may be a network interface card, such as an Ethernet card, opticaltransceiver, radio frequency transceiver, or any other type of devicethat can send and receive information. Other examples of such networkinterfaces may include Bluetooth®, 3G, 4G, and Wi-Fi® radios in mobilecomputing devices as well as a USB.

One or more peripheral devices 1480 may include any type of computersupport device to add additional functionality to the computing system.The one or more peripheral devices 1480 may include a modem or a router.

The components contained in the exemplary computing system 1400 of FIG.14 are those typically found in computing systems that may be suitablefor use with embodiments described herein and are intended to representa broad category of such computer components that are well known in theart. Thus, the exemplary computing system 1400 of FIG. 14 can be aworkstation, server, minicomputer, mainframe computer, or any othercomputing device. The computer can also include different busconfigurations, networked platforms, multi-processor platforms, and soforth. Various operating systems (OS) can be used including UNIX, Linux,Windows, and other suitable operating systems.

In further embodiments, the disclosed system (such as system 1220,system 1290, and POS system 1230) operate on a network ofhigh-performance computing servers typically found in a hostedenvironment, such as Microsoft Azure, Amazon Web Services, Google Cloud,etc.

Some of the above-described functions may be composed of instructionsthat are stored on storage media (e.g., computer-readable medium). Theinstructions may be retrieved and executed by the processor. Someexamples of storage media are memory devices, tapes, disks, and thelike. The instructions are operational when executed by the processor todirect the processor to operate in accord with the example embodiments.Those skilled in the art are familiar with instructions, processor(s),and storage media.

It is noteworthy that any hardware platform suitable for performing theprocessing described herein is suitable for use with the exampleembodiments. The terms “computer-readable storage medium” and“computer-readable storage media” as used herein refer to any medium ormedia that participate in providing instructions to a central processingunit (CPU) for execution. Such media can take many forms, including, butnot limited to, non-volatile media, volatile media, and transmissionmedia. Non-volatile media include, for example, optical or magneticdisks, such as a fixed disk. Volatile media include dynamic memory, suchas RAM. Transmission media include coaxial cables, copper wire, andfiber optics, among others, including the wires that include oneembodiment of a bus. Transmission media can also take the form ofacoustic or light waves, such as those generated during radio frequencyand infrared data communications. Some forms of computer-readable mediainclude, for example, a hard disk, magnetic tape, any other magneticmedium, any other optical medium, any other physical medium withpatterns of marks or holes, a RAM, a PROM, an EPROM, an EEPROM, aFLASHEPROM, any other memory chip or cartridge, a carrier wave, or anyother medium from which a computer can read.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to a CPU for execution. Abus carries the data to system RAM, from which a CPU retrieves andexecutes the instructions. The instructions received by system RAM canoptionally be stored on a fixed disk either before or after execution bya CPU.

Thus, various embodiments of methods and systems for automaticallycreating a catalog map for reconciliation of a point-of-sale catalog anda third-party service catalog have been described. Although embodimentshave been described with reference to specific examples, it will beevident that various modifications and changes can be made to theseexample embodiments without departing from the broader spirit and scopeof the present application. Accordingly, the specification and drawingsare to be regarded in an illustrative rather than a restrictive sense.There are many alternative ways of implementing the present technology.The disclosed examples are illustrative and not restrictive.

What is claimed is:
 1. A system for automatic creation of a catalog mapbetween a third-party catalog and a merchant catalog in a point-of-salesystem, the system comprising: a catalog extraction unit configured toexecute instructions stored on a processor to: extract a third-partycatalog for a merchant from a third-party service; and extract amerchant catalog from a merchant point-of-sale system; and a catalog mapcreation unit configured to execute instructions stored on a processorto: build a multi-tier hierarchical model for the extracted third-partycatalog; build a multi-tier hierarchical model for the extractedmerchant catalog; compare at least one term from the extractedthird-party catalog with at least one term from the extracted merchantcatalog; determine an equivalence between two compared terms; andgenerate a catalog map in the multi-tier hierarchical model structurewith each item on the third-party catalog mapped to a corresponding itemon the merchant catalog.
 2. The system of claim 1, wherein the catalogmap creation unit is further configured to generate a master catalog inthe multi-tier hierarchical model structure with each item on thethird-party catalog merged with a corresponding item on the merchantcatalog.
 3. The system of claim 1, wherein the multi-tier hierarchicalmodel has four tiers.
 4. The system of claim 1, wherein the extractedterm is any string of characters.
 5. The system of claim 1, wherein thecatalog map further comprises an identifier for each item on themerchant catalog and a corresponding identifier for each item on thethird-party catalog.
 6. The system of claim 1, wherein the catalog mapcreation unit is further configured to receive input from a human userregarding a mapping between an item on the third-party catalog to anitem on the merchant catalog.
 7. The system of claim 1, wherein thecomparison of the terms further comprises comparing one tier from themerchant catalog with one tier from the third-party catalog.
 8. Thesystem of claim 1, wherein the comparison of the terms further comprisescomparing one tier from the merchant catalog with multiple tiers fromthe third-party catalog.
 9. The system of claim 1, wherein thecomparison of the terms further comprises comparing multiple tiers fromthe merchant catalog with one tier from the third-party catalog.
 10. Thesystem of claim 1, wherein the comparison of the terms further comprisesdetermining that both terms have a positive meaning or that both termshave a negative meaning.
 11. The system of claim 1, wherein thedetermining the equivalence between the two compared terms furthercomprises determining a weighted score representing a degree ofequivalence between the two compared terms.
 12. The system of claim 1,wherein the determining the equivalence between the two compared termsfurther comprises utilizing at least two different analyses to generateat least two weighted scores representing a degree of equivalencebetween the two compared terms.
 13. The system of claim 1, wherein thegenerate the catalog map further comprises utilizing at least onepreviously generated catalog map between the merchant catalog and asecond third-party catalog.
 14. A method for automatically creating acatalog map between a third-party catalog and a merchant catalog, themethod comprising: extracting a third-party catalog for a merchant froma third-party service; extracting a merchant catalog from a merchantpoint-of-sale system; building a multi-tier hierarchical model for theextracted third-party catalog; building a multi-tier hierarchical modelfor the extracted merchant catalog; comparing at least one term from theextracted third-party catalog with at least one term from the extractedmerchant catalog; determining an equivalence between two compared terms;and generating a catalog map in the hierarchical model structure witheach item on the third-party catalog mapped to a corresponding item onthe merchant catalog.
 15. The method of claim 14, wherein the catalogmap further comprises an identifier for each item on the merchantcatalog and an identifier for each item on the third-party catalog. 16.The method of claim 14, wherein the comparison of the terms furthercomprises determining that both terms have a positive meaning or thatboth terms have a negative meaning.
 17. The method of claim 14, whereinthe comparison of the terms further comprises utilizing at least one ofa Jaro-Winkler Distance analysis, Longest Common Subsequence analysis,and Cosine Similarity analysis.
 18. The method of claim 14, wherein thedetermining the equivalence between the two compared terms furthercomprises determining a weighted score representing a degree ofequivalence between the two compared terms.
 19. The method of claim 14,wherein the generating the catalog map further comprises utilizing atleast one previously generated catalog map between the merchant catalogand a second third-party catalog.
 20. A method for automaticallycreating a master catalog between one or more third-party catalogs and amerchant catalog, the method comprising: extracting a third-partycatalog for a merchant from one or more third-party services; extractinga merchant catalog from a merchant point-of-sale system; building amulti-tier hierarchical model for the extracted third-party catalogs;building a multi-tier hierarchical model for the extracted merchantcatalog; distinguishing between modifiers and options in the extractedthird-party catalog; distinguishing between modifiers and options in theextracted merchant catalog; comparing at least one term from theextracted third-party catalog with at least one term from the extractedmerchant catalog; determining an equivalence between two compared terms;and generating a master catalog in the multi-tier hierarchical modelstructure with each item on each third-party catalog merged with acorresponding item on the merchant catalog.
 21. A system for automaticcreation of a master catalog between at least one third-party catalogand a merchant catalog in a point-of-sale system, the system comprising:a catalog extraction unit configured to execute instructions stored on aprocessor to: extract a third-party catalog for a merchant from at leastone third-party service; and extract a merchant catalog from a merchantpoint-of-sale system; and a catalog map creation unit configured toexecute instructions stored on a processor to: build a multi-tierhierarchical model for the extracted at least one third-party catalog;build a multi-tier hierarchical model for the extracted merchantcatalog; distinguish between modifiers and options in the extractedthird-party catalog; distinguish between modifiers and options in theextracted merchant catalog; compare at least one term from the extractedat least one third-party catalog with at least one term from theextracted merchant catalog; determine an equivalence between twocompared terms; and generate a master catalog in the multi-tierhierarchical model structure with each item on each third-party catalogmerged with a corresponding item on the merchant catalog.